using System;
using System.Collections.Generic;

namespace CMS.Core.Domain
{
    /// <summary>
    /// ChuyenTiep object for NHibernate mapped table ChuyenTiep.
    /// </summary>
    [Serializable]
    public class ChuyenTiep : DomainObject<System.String>
    {
        private System.String _MaDonThu;
        private System.String _MaPhongBan;
        private System.String _VBGNV;
        private System.DateTime? _NgayHoanThanh;
        
        private System.Boolean _KhongGioiHan;
        private System.String _YKienLDVP;
        private System.String _YKienLDUBND;
        private System.DateTime? _NgayThuLy;
        private System.String _DeXuatYKien;
        private System.String _NoiChuyen;
        private System.DateTime? _NgayHoanTra;
        private System.String _TaiLieuTra;
        private System.String _LyDoTra;        
        private System.DateTime? _NgayThongBao;
        private System.DateTime? _NgayChuyenKN;
        private System.DateTime? _NgayNhanKQ;
        private System.Int32? _MaCachXL;
        private System.String _KetQuaGiaiQuyet;
        private System.String _GhiChu;
        private System.Boolean _PBXuLy;
        private System.DateTime _NgayChuyen;
        
        private DonThu _MaDonThuLookup;
        private CachXL _CachXLLookup;
        private PhongBan _PhongBanLookup;

        public ChuyenTiep()
        {
            base.id = Guid.NewGuid().ToString().ToUpper();
        }

        public ChuyenTiep(System.String id)
        {
            base.ID = id;
        }

        public virtual System.String MaDonThu
        {
            get { return _MaDonThu; }
            set { _MaDonThu = value; }
        }       

        public virtual System.String YKienLDVP
        {
            get { return _YKienLDVP; }
            set { _YKienLDVP = value; }
        }
        public virtual System.String YKienLDUBND
        {
            get { return _YKienLDUBND; }
            set { _YKienLDUBND = value; }
        }

        
        public virtual System.DateTime? NgayNhanKQ
        {
            get { return _NgayNhanKQ; }
            set { _NgayNhanKQ = value; }
        }

        public virtual System.DateTime? NgayHoanThanh
        {
            get { return _NgayHoanThanh; }
            set { _NgayHoanThanh = value; }
        }

        public virtual System.String VBGNV
        {
            get { return _VBGNV; }
            set { _VBGNV = value; }
        }

        public virtual System.String GhiChu
        {
            get { return _GhiChu; }
            set { _GhiChu = value; }
        }


        public virtual System.Boolean KhongGioiHan
        {
            get { return _KhongGioiHan; }
            set { _KhongGioiHan = value; }
        }
        public virtual System.Int32? MaCachXL
        {
            get { return _MaCachXL; }
            set { _MaCachXL = value; }
        }

        public virtual System.String MaPhongBan
        {
            get { return _MaPhongBan; }
            set { _MaPhongBan = value; }
        }       

        public virtual System.String NoiChuyen
        {
            get { return _NoiChuyen; }
            set { _NoiChuyen = value; }
        }

        public virtual System.String TaiLieuTra
        {
            get { return _TaiLieuTra; }
            set { _TaiLieuTra = value; }
        }


        public virtual System.String LyDoTra
        {
            get { return _LyDoTra; }
            set { _LyDoTra = value; }
        }


        public virtual System.Boolean PBXuLy
        {
            get { return _PBXuLy; }
            set { _PBXuLy = value; }
        }


        public virtual System.DateTime? NgayThuLy
        {
            get { return _NgayThuLy; }
            set { _NgayThuLy = value; }
        }


        public virtual System.DateTime? NgayHoanTra
        {
            get { return _NgayHoanTra; }
            set { _NgayHoanTra = value; }
        }


        public virtual System.DateTime? NgayChuyenKN
        {
            get { return _NgayChuyenKN; }
            set { _NgayChuyenKN = value; }
        }


        public virtual System.DateTime? NgayThongBao
        {
            get { return _NgayThongBao; }
            set { _NgayThongBao = value; }
        }

        public virtual System.String DeXuatYKien
        {
            get { return _DeXuatYKien; }
            set { _DeXuatYKien = value; }
        }

        public virtual System.String KetQuaGiaiQuyet
        {
            get { return _KetQuaGiaiQuyet; }
            set { _KetQuaGiaiQuyet = value; }
        }

        public virtual CachXL CachXLLookup
        {
            get { return _CachXLLookup; }
            set { _CachXLLookup = value; }
        }

        public virtual PhongBan PhongBanLookup
        {
            get { return _PhongBanLookup; }
            set { _PhongBanLookup = value; }
        }
        public virtual DonThu MaDonThuLookup
        {
            get { return _MaDonThuLookup; }
            set
            {
                _MaDonThuLookup = value;
                if (_MaDonThuLookup != null)
                    _MaDonThu = _MaDonThuLookup.ID;
            }
        }
        public virtual System.DateTime NgayChuyen
        {
            get { return _NgayChuyen; }
            set { _NgayChuyen = value; }
        }
        public override int GetHashCode()
        {
            return ID.GetHashCode();
        }

    }
}
